2-2 自然言語と単語の分散表現 『ゼロから作るDeep Learning 2』
from 『ゼロから作るDeep Learning 2 ―自然言語処理編』
自然言語処理の歴史と、どうやって近年の単語ベクトル化に至ったかについてが書かれている
シソーラスを使う手法には問題点があった
word: シソーラス
問題点: シソーラス#6659386dc9ec6a0000d691e3
カウントベースの手法へ進んだ
word: コーパス
ニューラルネットワークを使った推論ベースの手法へ進んだ
word: word2vec
コーパスを扱う
例文:you say goodbye and i say hello.
まず単語に分割し、各単語にIDを振り、単語-ID、ID-単語の対応リスト(辞書)を作る
id_to_word{0: 'you', 1: 'say', 2: 'goodbye', 3: 'and', 4: 'i', 5: 'hello', 6: '.'}
word_to_id{'you': 0, 'say': 1, 'goodbye': 2, 'and': 3, 'i': 4, 'hello': 5, '.': 6}
ウィンドウサイズを1とすると、
1単語目のyouはコンテキストが1つ
2単語目のsayは2回出現するので、コンテキストが4つ
これらを数列で表すと、先ほどつくった対応リストにしたがってベクトルとして表すと
you{0,1,0,0,0,0,0}
say{1,0,1,0,1,1,0}
となる
これらをまとめて表したものを共起行列と呼ぶ
code:共起行列.py
from common.util import create_co_matrix
C = create_co_matrix(corpus,7)
print(C)
[0 1 0 0 0 0 0
1 0 1 0 1 1 0
0 1 0 1 0 0 0
0 0 1 0 1 0 0
0 1 0 1 0 0 0
0 1 0 0 0 0 1
0 0 0 0 0 1 0]
※ 本書ではコンテキストのサイズをウィンドウサイズという言葉で表す
ウィンドウサイズは本来左右均等ではないが、本書では単純さを優先し、左右均等とする
コサイン類似度?
word: PPMI行列
word: 単語の分散表現
word: 分布仮説
word: ベクトルの次元削除
ベクトルの次元削除に関しては、本書では簡単にしか触れられておらず詳細がわからないので別の本を読んで詳しいことを知る必要があるcak.icon
hr.icon
目次
2-2 自然言語と単語の分散表現 『ゼロから作るDeep Learning 2』
2.1 自然言語処理とは
2.1.1 単語の意味
2.2 シソーラス
2.2.1 WordNet
2.2.2 シソーラスの問題点
2.3 カウントベースの手法
2.3.1 Pythonによるコーパスの下準備
2.3.2 単語の分散表現
2.3.3 分布仮説
2.3.4 共起行列
2.3.5 ベクトル間の類似度
2.3.6 類似単語のランキング表示
2.4 カウントベースの手法の改善
2.4.1 相互情報量
2.4.2 次元削減
2.4.3 SVDによる次元削減
2.4.4 PTBデータセット
2.4.5 PTBデータセットでの評価
2.5 まとめ